
类 SQL代码生成

	@静态
	常量 类型_文本 为 文本 = "TEXT"
	@静态
	常量 类型_整数 为 文本 = "INTEGER"
	@静态
	常量 类型附加_不可唯空 为 文本 = "NOT NULL "
	@静态
	常量 类型附加_主键 为 文本 = "PRIMARY KEY "
	//后面加上值
	@静态
	常量 类型附加_默认值 为 文本 = " DEFAULT "

	变量 数据库对象 : 数据库管理?

	方法 绑定(数据库对象 : 数据库管理) : SQL代码生成
		本对象.数据库对象 = 数据库对象
		返回 本对象
	结束 方法
	/*
   参数->表名：添加的表名称
   参数->字段：哈希表 键 为 字段名称 值 为 字段类型 
   */
	
	方法 添加表(表名 为 文本,表字段组 为 SQL生成器_表字段[])
		变量 SQL 为 文本 = "CREATE TABLE IF NOT EXISTS %s (%s)"
		变量 字段 为 文本 = ""
		循环(表字段组 -> 表字段)
			字段 =  字段 + 表字段.到文本() + "," ;
		结束 循环

		如果 字段.为空()!= 真
			字段 = 字段.取文本左边(字段.长度-1)
		结束 如果
		SQL = 格式化文本(SQL,{表名,字段})
		数据库对象.执行SQL(SQL)
	结束 方法

	
	方法 是否存在表(表名 : 文本) : 逻辑型
		变量 SQL : 文本 = "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='"+表名+"'"
		开始俘获异常()
		变量 光标1 : 数据库光标 = 数据库对象.执行查询SQL(SQL)
		如果 光标1.下一行() 则
			如果 光标1.取整数_索引(0) > 0 则
				返回 真
			结束 如果
		结束 如果
		俘获所有异常()
		结束俘获异常()
		返回 假
	结束 方法
	
	方法 查询所有表信息() : SQL表信息[]
		变量 光标 : 数据库光标 = 数据库对象.查询记录("sqlite_master")
		变量 表信息 : SQL表信息[光标.总行数]
		循环(光标.下一行())
			code #表信息[#<数据库光标.光标位置>(#光标)] = new #<@SQL表信息>(#光标);
		结束 循环
		返回 表信息
	结束 方法


	
	方法 删除表(欲删除表名 为 文本)
		变量 SQL : 文本 = "DROP TABLE "+欲删除表名
		数据库对象.执行SQL(SQL)
	结束 方法
	
	方法 重命名表(原表名 为 文本,改后表名 为 文本)
		变量 SQL : 文本 = "alter table '"+敏感词转换(原表名)+"' rename to "+ 改后表名
		数据库对象.执行SQL(SQL)
	结束 方法
	
	@隐藏
	方法 敏感词转换(词 为 文本) 为 文本
		返回 词.替换("'","\'")
	结束 方法

结束 类

//请通过SQL工具获取该类对象，不要直接创建对象
@禁止创建对象
类 SQL表信息
	变量 类型 : 文本
	变量 表名称 : 文本
	变量 名称 : 文本
	变量 管理页 : 整数
	变量 结构语句 : 文本
	
	code public #<SQL表信息> (#<@数据库光标> gb){#置(gb);}
	@隐藏
	方法 置(光标 : 数据库光标)
		类型 = 光标.取文本("type")
		表名称 = 光标.取文本("tbl_name")
		名称 = 光标.取文本("name")
		管理页 = 光标.取整数("rootpage")
		结构语句 = 光标.取文本("sql")
	结束 方法
	
结束 类

类 SQL生成器_表字段

	变量 名称 : 文本
	变量 类型 : 文本
	变量 是否主键 : 逻辑型
	变量 是否不为空 : 逻辑型
	变量 默认值 : 文本

	方法 置名称(名称 : 文本) : SQL生成器_表字段
		本对象.名称 = 名称
		返回 本对象
	结束 方法

	方法 置类型(类型 : 文本) : SQL生成器_表字段
		本对象.类型 = 类型
		返回 本对象
	结束 方法

	方法 置是否主键(是否 : 逻辑型) : SQL生成器_表字段
		本对象.是否主键 = 是否
		返回 本对象
	结束 方法

	方法 置是否不可为空(是否 : 逻辑型) : SQL生成器_表字段
		本对象.是否不为空 = 是否
		返回 本对象
	结束 方法


	方法 到文本() : 文本
		如果 是否不为空 则
			类型 = 类型 + " NOT NULL"
		结束 如果
		如果 是否主键 则
			类型 = 类型 + " PRIMARY KEY"
		结束 如果
		如果 默认值.为空() == 假 则

		结束 如果
		返回 "'"+名称+"' " + 类型
	结束 方法
结束 类